-
Notifications
You must be signed in to change notification settings - Fork 381
Make Podman support more prominent in the documentation #1471
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
a9434d3 to
a0e43fc
Compare
|
Please correct me if I got something wrong. Before #1402, After #1402, Regarding container technology, the big players are
Podman keeps some level of compatibility with Docker. As far as I know, Singularity / Apptainer are incompatible with Docker. My first question is, should If the answer is "yes", a follow up question is what would be the road map for |
|
My understanding was that podman was supported as long as it the engine backed by the docker cli (e.g. I use colima, not docker engine), but podman cli is not supported first-class in this package. Is that accurate, @manics? I agree generally that pointing most language to OCI terms is good, but I don't know what commitment we are making in terms of cli compatibility assumptions. |
|
Originally repo2docker should've worked fine with Podman when run as a service since podman has a docker compatible API: After #1402 we're now using the Docker CLI. In general the Podman CLI should be compatible, but I haven't looked at how good |
|
If we've got tests running that verify it (to a reasonable degree), I'm happy to make the support official. |
|
After
most of the tests using Podman fails. One of the tests fails in repo2docker/repo2docker/app.py Lines 633 to 634 in 358888c
@manics do you know what might be happening? |
|
In 48e9243, tests with Podman were failing because Podman's service was not activate. This was fixed in 4e7ed9e and documented in ef36a9c. Test of repo2docker/repo2docker/app.py Lines 632 to 634 in 358888c
import docker
a = docker.APIClient(base_url="unix:///run/user/1000/podman/podman.sock")
i = a.inspect_image("docker.io/library/httpd:latest")
i.configthat returns but I can access the information using i["Config"]["WorkingDir"]I tested the import docker
a = docker.APIClient(base_url="unix:///run/user/1000/podman/podman.sock")
i = a.inspect_image("docker.io/library/httpd:latest")
i["Config"]["WorkingDir"]with Docker and it works. |
e461156 to
b3dea2d
Compare
|
A few tests are failing.
|
| if self.volumes: | |
| image = client.inspect_image(self.output_image_spec) | |
| image_workdir = image.config["WorkingDir"] |
client was APIClient when, in fact, the client is DockerEngine.
DockerEngine's inspect_image looks OK but there are cases where docker image inspect and podman image inspect produce different outputs.
I will try to investigate this upstream. I asked containers/podman#27313.
buildx support
-
tests/unit/test_app.py::test_extra_buildx_build_args -
tests/unit/test_connect_url.py::test_connect_url -
tests/unit/test_editable.py::test_editable -
tests/unit/test_editable.py::test_editable_by_host -
tests/unit/test_users.py::test_user -
tests/unit/test_volumes.py::test_volume_abspath -
tests/unit/test_volumes.py::test_volume_relpath
in test (24.04, 3.13, podman, unit).
My suspicious is that the test fails because of some "obscure" difference between Podman and Docker.
1e51be6 to
efe313d
Compare
|
With commit pytest -s tests/unit/test_editable.py::test_editablethe log shows Why does the above warning happened? Is |
I repo2podman I found passing the format arg |
and add note about DOCKER_HOST environment variable.
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
because Podman does not support bind mount. Related to jupyterhub#1483
efe313d to
ae4ebb1
Compare
|
This is ready for a review and I would suggest to avoid increase it more. The tests now run and pass for Podman as for Docker. Because Podman is, by default, rootless, I configured tests related to bind mount to be skipped, read #1483 for details. I also skipped the tests related with the registry as they have some bind mount, see repo2docker/tests/norun/test_registry.py Lines 42 to 43 in 443b851
The GitHub Action runner |
| Install [Docker](https://www.docker.com), as it is required to build Docker images. | ||
| The [Community Edition](https://docs.docker.com/install/) is available for free. | ||
| ```{important} | ||
| Only the [Docker Engine](https://docs.docker.com/engine/) is an open source. [Docker Desktop](https://docs.docker.com/get-started/get-docker/) requires a license. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Only the [Docker Engine](https://docs.docker.com/engine/) is an open source. [Docker Desktop](https://docs.docker.com/get-started/get-docker/) requires a license. | |
| Only the [Docker Engine](https://docs.docker.com/engine/) is open source. [Docker Desktop](https://docs.docker.com/get-started/get-docker/) requires a license. |
| Follow [Podman's official installation steps](https://podman.io/docs/installation). | ||
|
|
||
| We recommend installing `repo2docker` with the `pip` tool: | ||
| After complete the installation of Podman, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| After complete the installation of Podman, | |
| After completing the installation of Podman, |
| After complete the installation of Podman, | ||
|
|
||
| ``` | ||
| 1. creates a [listening service for Podman](https://docs.podman.io/en/latest/markdown/podman-system-service.1.html) by running |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 1. creates a [listening service for Podman](https://docs.podman.io/en/latest/markdown/podman-system-service.1.html) by running | |
| 1. create a [listening service for Podman](https://docs.podman.io/en/latest/markdown/podman-system-service.1.html) by running |
| python_version: ["3.13"] | ||
| container_cli: | ||
| - docker | ||
| - podman |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - podman |
This doubles the number of tests in the matrix, which means PR runs will take even longer, and the chance of a failure due to flakiness doubles.
I don't think we need to run all tests with Podman, just a subset, which we can do by adding them to the include: section below
By